#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
//int main()
//{
//    int ret = fork();
//    if(ret<0)
//    {
//        perror("fork");
//        return 1;
//    }
//    else if(ret == 0)
//    {
//        //child
//        printf("I am a child : %d!, ret :%d\n",getpid(),ret);
//    }
//    else
//    {
//        //father
//        printf("I am a father : %d!, ret :%d\n",getppid(),ret);
//    }
//
//    sleep(1);
//
//
//
//    //while(1)
//    //{
//    //    sleep(1);
//    //}
//    //return 0;
//    //printf("pid:%d\n",getpid());
//    //printf("ppid:%d\n",getppid());
//   //int ret = fork();
//   //printf("hello proc : %d!, ret: %d\n", getpid(), ret);
//   //sleep(1);
// return 0; 
//}








//int gval = 100;
//
//int main()
//{
//    printf("父进程开始运行,pid: %d\n", getpid());
//    pid_t id = fork();
//    if(id < 0)
//    {
//        perror("fork");
//        return 1;
//    }
//    else if(id == 0)
//    {
//        printf("我是一个子进程 !, 我的pid: %d, 我的父进程id: %d, gval: %d\n", getpid(), getppid(), gval);
//        sleep(5);
//        // child
//        while(1)
//        {
//            sleep(1);
//            printf("子进程修改变量: %d->%d", gval, gval+10);
//            gval+=10; // 修改
//            printf("我是一个子进程 !, 我的pid: %d, 我的父进程id: %d\n", getpid(), getppid());
//        }
//    }
//    else
//    {
//        //father
//        while(1)
//        {
//            sleep(1);
//            printf("我是一个父进程 !, 我的pid: %d, 我的父进程id: %d, gval: %d\n", getpid(), getppid(), gval);
//        }
//    }
//    printf("进程开始运行,pid: %d\n", getpid());
//    return 0;

//}
int main()
{
    printf("父进程开始运行，pid：%d\n",getpid());

    pid_t id = fork();
    if(id<0)
    {
        return 1;
    }
    else if(id ==0)
    {
        //child
        while(1)
        {
            sleep(1);
            printf("我是一个子进程，我的pid为:%d,我的父进程id为:%d\n",getpid(),getppid());
        }
    }
    else
    {
        //father
        while(1)
        {
            sleep(1);
            printf("我是一个父进程，我的pid为:%d,我的父进程id为:%d\n",getpid(),getppid());
        }
    }
    return 0;
}
